﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcCaja.Core;
using Chilis.Caja.Data.Models;
using System.Web.Routing;

namespace MvcCaja.Controllers
{
    public class PagoController : Controller
    {
        //
        // GET: /Pago/

        public ActionResult PagoCuenta(String CodigoOrden, int NumeroCuenta)
        {

            CuentaService oCuentaService = new CuentaService();

            Cuenta oCuenta = oCuentaService.obtener(CodigoOrden, NumeroCuenta);


            return View(oCuenta);
        }

        [HttpPost]
        public ActionResult PagoCuenta(FormCollection oFormCollection)
        {
            String sCodigoOrigen = oFormCollection["Orden"].ToString();
            int iNumeroCuenta = int.Parse(oFormCollection["Cuenta"].ToString());
            Decimal dMontoSoles = Decimal.Parse(oFormCollection["txtMontoSoles"].ToString());
            Decimal dMontoDolares = Decimal.Parse(oFormCollection["txtMontoDolares"].ToString());
            Decimal dMontoVisa = Decimal.Parse(oFormCollection["txtMontoVisa"].ToString());
            Decimal dMontoMastercard = Decimal.Parse(oFormCollection["txtMontoMastercard"].ToString());
            Decimal dVuelto = Decimal.Parse(oFormCollection["hvuelto"].ToString());

            String sTipoComprobante = oFormCollection["TipoComprobante"].ToString();
            String sRUC = oFormCollection["txtRUC"].ToString();
            String sNombre = oFormCollection["txtNombre"].ToString();
            String sDireccion = oFormCollection["txtDireccion"].ToString();

            String sNumeroVisa = oFormCollection["txtNumeroVisa"].ToString();
            String sNumeroMastercard = oFormCollection["txtNumeroMastercard"].ToString();

            Boolean bDetalle = oFormCollection["chkDetalle"] != null;

            String suser = Session["user"].ToString();
            String sCaja = Session["Caja"].ToString();
            String sTurno = Session["Turno"].ToString();
            Decimal dTipCambio = Decimal.Parse(Session["TipoCambio"].ToString());

            String sCupon = oFormCollection["valcupon"].ToString();

            PagoService oPagoService = new PagoService();

            oPagoService.insertar(sCodigoOrigen, iNumeroCuenta, sCaja, sTurno, suser, dMontoSoles, dMontoDolares, dMontoVisa, dMontoMastercard, sTipoComprobante, sRUC, sNombre, sDireccion, bDetalle, dTipCambio, dVuelto, sNumeroVisa, sNumeroMastercard, sCupon);

            return RedirectToAction("Cobros", new RouteValueDictionary(
                new { controller = "Consumo", action = "Cobros", CodigoOrden = sCodigoOrigen }));
        }

        public ActionResult Imprimir(String CodigoOrden, int NumeroCuenta)
        {

            PagoService oPagoService = new PagoService();

            Pago oPago = oPagoService.obtener(CodigoOrden, NumeroCuenta);

            return View(oPago);
        }

        public ActionResult Cupon(String CodigoCupon)
        {
            CuponService oCuponService = new CuponService();

            Cupon oCupon = oCuponService.Obtener(CodigoCupon);

            oCupon.Pago = null;

            return Json(oCupon, JsonRequestBehavior.AllowGet);
        }
    }
}
